# ############################################################################## #
# you do not have to specify everything, pick and choose the options you need only
# ############################################################################## #

[main::general]
# 1=generate newer version of auth ticket, used by some modern apps
# default=0
new_app_ticket=1
# 1=generate/embed Game Coordinator token inside the new auth ticket
# default=0
gc_token=1
# 1=pretend the app is running on a steam deck
# default=0
steam_deck=0
# 1=enable avatar functionality
# default=0
enable_account_avatar=0
# 1=synchronize user stats/achievements with game servers as soon as possible instead of caching them until the next call to `Steam_RunCallbacks()`
# not recommended to enable this
# default=0
immediate_gameserver_stats=0
# 1=use the proper type of the server list (internet, friends, etc...) when requested by the game
# 0=always return the type of the server list as "LAN server"
# not recommended to enable this
# default=0
matchmaking_server_list_actual_type=0
# 1=grab the server details for match making using an actual server query
# 0=use the info from the local network messages shared between client/server
# not recommended to enable this, currently breaks some games
# default=0
matchmaking_server_details_via_source_query=0
# very basic crash logger/printer
# this is intended to debug some annoying scenarios, and best used with the debug build of the emu
# default=
crash_printer_location=./path/relative/to/dll/crashes.txt

[main::stats]
# 1=prevent `Steam_User_Stats::FindLeaderboard()` from always succeeding and creating the unknown leaderboard
# not recommended to enable this
# default=0
disable_leaderboards_create_unknown=0
# the emu will only save/update stats defined by the user, unknown stats requested or updated by the game will be rejected
# 1=allow unknown stats to be saved/updated
# default=0
allow_unknown_stats=0
# the emu has an internal extra functionality which reports an achievement progress when a stat that's tied to an ahcievement is updated
# also the progress is saved to disk (usual local storage folder for the current appid) so that external applications can watch these updates
# 1=enable this functionality
# only used internally for a stat that's tied to an achievement, the normal achievement progress requests made by the game are not impacted
# some applications tie many stats to achievements, and update these stats very frequently, causing a spam of disk writes and overlay popups
# in that case you can disable this functionality (set the value to 0), but the stat progress won't be saved or displayed in the overlay
# default=1
stat_achievement_progress_functionality=1
# whenever a game updates a stat which is tied to an achievement progress, the emu will save that progress immediately
# but some games will update the stat very frequently (with lower & higher values) resulting in a spam of disk writes or overlay notifications
# 0=save any stat achievement progress value (higher or lower) 
# 1=save stat achievement progress value only if it is higher than the current one
# this has no impact on the stat itself, only the achievement progress
# also has no impact on the functions which directly change stats, achievements, or achievements progress
# default=1
save_only_higher_stat_achievement_progress=1
# the emulator loads the achievements icons is memory, this is needed for APIs like `ISteamUserStats::GetAchievementIcon()` and the overlay
# the loaded icon size is controlled by [overlay::appearance] -> Icon_Size, in the file configs.overlay.ini
# this value controls how many icons to load each iteration when the periodic callback of the emu is triggered
# or when the app/game calls `SteamAPI_RunCallbacks()`
# each achievement has 2 icons, one when it's locked and another when it's unlocked, so a value of 10 means loading 20 icons
# increasing this value will cause a huge startup delay
# -1=disable this functionality (`ISteamUserStats::GetAchievementIcon()` and the overlay won't be able to use icons)
#  0=load the icon in memory only when it's requested
# default=10
paginated_achievements_icons=10

[main::connectivity]
# 1=prevent hooking OS networking APIs and allow any external requests
# only used by the experimental builds on **Windows**
# default=0
disable_lan_only=0
# 1=disable all steam networking interface functionality
# this won't prevent games/apps from making external requests
# networking related functionality like lobbies or those that launch a server in the background will not work
# default=0
disable_networking=1
# change the UDP/TCP port the emulator listens on, you should probably not change this because everyone needs to use the same port or you won't find yourselves on the network
# default=47584
listen_port=47584
# 1=pretend steam is running in offline mode, mainly affects the function `ISteamUser::BLoggedOn()`
# Some games that connect to online servers might only work if the steam emu behaves like steam is in offline mode
# default=0
offline=0
# 1=prevent sharing stats and achievements with any game server, this also disables the interface ISteamGameServerStats
# default=0
disable_sharing_stats_with_gameserver=0
# 1=do not send server details to the server browser, only works for game servers
# default=0
disable_source_query=0
# 1=enable sharing leaderboards scores with people playing the same game on the same network
# not ideal and synchronization isn't perfect
# default=0
share_leaderboards_over_network=0
# 1=prevent lobby creation in the steam matchmaking interface
# default=0
disable_lobby_creation=0
# 1=attempt to download external HTTP(S) requests made via Steam_HTTP::SendHTTPRequest() inside "steam_settings/http/"
# make sure to:
# * set disable_lan_only=1
# * set disable_networking=0
# this will **not** work if the app is using native/OS web APIs
# default=0
download_steamhttp_requests=0

# mostly workarounds for specific problems
[main::misc]
# 1=force `ISteamUserStats::SetAchievement()` to always return true
# this is a workaround for some games that otherwise won't work
# default=0
achievements_bypass=0
# force the function `Steam_HTTP::SendHTTPRequest()` to always succeed
# default=0
force_steamhttp_success=0
# env var `SteamOverlayGameId` breaks Steam Input when the game is added to Steam as a non-steam game
# 1=don't write this env var, allowing Steam Input to work
# default=0
disable_steamoverlaygameid_env_var=0
# 1=add many Steam apps to the list of owned DLCs and the emu's list of installed app IDs
# useful for many Source-based games
# https://developer.valvesoftware.com/wiki/Steam_Application_IDs
# https://developer.valvesoftware.com/wiki/Dedicated_Servers_List
# default=0
enable_steam_preowned_ids=0
# some Source-based games use the interface `ISteamGameStats` to report some stats
# you can make the emu save this data to a folder
# empty value = don't save anything (default)
# the emu will create the folders if they are missing but the path specified must be writable
# default=
steam_game_stats_reports_dir=./path/relative/to/dll/
